home *** CD-ROM | disk | FTP | other *** search
/ Champak 99 / (Vol 99) Jan 19 2010.iso / Games / balls.swf / scripts / DefineSprite_45 / frame_1 / DoAction.as
Encoding:
Text File  |  2010-01-19  |  1.9 KB  |  97 lines

  1. r = _width / 2;
  2. rr = r;
  3. decay = 0.96;
  4. h = 450;
  5. inside = true;
  6. fallRate = 0;
  7. fallDist = 100;
  8. this.onEnterFrame = function()
  9. {
  10.    r = _width / 2;
  11.    if(!(_Y - r > 0 && _Y + r <= h))
  12.    {
  13.       dy *= -1;
  14.       if(_Y - r < 0)
  15.       {
  16.          _Y = 0 + r;
  17.       }
  18.       else if(_Y + r > h)
  19.       {
  20.          _Y = h - r;
  21.       }
  22.       _Y = _Y + dy;
  23.    }
  24.    if(!(_X - r > 0 && _X + r <= h))
  25.    {
  26.       dx *= -1;
  27.       if(_X - r < 0)
  28.       {
  29.          _X = 0 + r;
  30.       }
  31.       else if(_X + r > h)
  32.       {
  33.          _X = h - r;
  34.       }
  35.       _X = _X + dx;
  36.    }
  37.    if(!inside && hitTest(_root.area))
  38.    {
  39.       l = _root.area._x - _root.area._width / 2;
  40.       ri = _root.area._x + _root.area._width / 2;
  41.       t = _root.area._y - _root.area._height / 2;
  42.       b = _root.area._y + _root.area._height / 2;
  43.       if(_root.area._xscale > 71)
  44.       {
  45.          if(_Y - r < t)
  46.          {
  47.             dy *= -1;
  48.             _Y = t - r;
  49.          }
  50.          else if(_Y + r > b)
  51.          {
  52.             dy *= -1;
  53.             _Y = b + r;
  54.          }
  55.          else if(_X - r < l)
  56.          {
  57.             dx *= -1;
  58.             _X = l - r;
  59.          }
  60.          else if(_X + r > ri)
  61.          {
  62.             dx *= -1;
  63.             _X = ri + r;
  64.          }
  65.       }
  66.       else
  67.       {
  68.          _root.fallNow = false;
  69.          _root.riseNow = true;
  70.       }
  71.    }
  72.    this._x += this.dx;
  73.    this._y += this.dy;
  74.    dx *= decay;
  75.    dy *= decay;
  76.    if(!inside)
  77.    {
  78.       fallRate += 0.2;
  79.       fallDist -= fallRate;
  80.       fallRate *= 0.97;
  81.       if(fallDist < 60)
  82.       {
  83.          fallRate *= -0.9;
  84.          fallDist = 60;
  85.       }
  86.       _xscale = _yscale = fallDist;
  87.       r = _xscale / 100 * rr;
  88.    }
  89.    if(!hitTest(_root.area))
  90.    {
  91.       inside = false;
  92.       _root.fallNow = true;
  93.       _root.riseNow = false;
  94.       _root.maxim = 6;
  95.    }
  96. };
  97.